A computer network is a collection of interconnected computing devices that can exchange data and share resources. Example network devices include layer two devices that operate within the second layer of the Open Systems Interconnection (OSI) reference model, i.e., the data link layer, and layer three devices that operate within the third layer of the OSI reference model, i.e., the network layer. Network devices within computer networks often include a control unit that provides control plane functionality for the network device and forwarding components for routing or switching data units. In some cases, for example, a network device may include a plurality of forwarding units (referred to in some examples as packet forwarding engines (PFEs)) and a switch fabric that collectively provide a forwarding plane for forwarding network traffic.
The control plane functions provided by the control unit include storing network topologies in the form of a routing information base (RIB), executing routing protocols to communicate with peer routing devices to maintain and update the RIB, and providing a management interface to allow user access and configuration of the network device. The control unit maintains routing information that represents the overall topology of the network and defines routes to destination prefixes within the network.
The control unit derives a forwarding information base (FIB) that includes a number of forwarding structures generated by the control unit in accordance with the routing information and control information. The control unit installs the forwarding structures within the data plane to programmatically configure the forwarding components. The data and instructions that constitute the forwarding structures define an internal forwarding path for each incoming packet received by the network device. For example, to generate a route table lookup forwarding structure, the control unit selects routes defined by the network topology and maps packet key information (e.g., destination information and other select information from a packet header) to one or more specific next hop network devices and ultimately to one or more specific output interfaces of interface cards of the network device. In some cases, the control unit may install the forwarding structures into each of the PFEs to update the FIB within each of the PFEs and control traffic forwarding within the data plane.
Forwarding capacity of the network device may be increased or decreased by adding or removing PFEs to the network device. In some examples, the network device can include PFEs with different hardware and/or software versions as PFEs are added and removed from the network device. The PFEs, in some examples, are operably coupled to physical interfaces that send and receive network packets. In some examples, the network device may define one or more logical interfaces that are each associated with a physical interface. The network device may use the logical interfaces to apply, for example, one or more services to network packets processed by the network device. In some examples, PFEs with different hardware and/or software versions may use a common group of logical interfaces to forward network packets.